home *** CD-ROM | disk | FTP | other *** search
/ Suzy B Software 2 / Suzy B Software CD-ROM 2 (1994).iso / anidone / art4 / art.s < prev    next >
Text File  |  1995-05-02  |  5KB  |  270 lines

  1.   TEXT
  2.   INCLUDE TOS\GEMDOS.S
  3.   INCLUDE TOS\XBIOS.S
  4.  
  5. _FG_BP_1=24                         ;LINE-A VARIABLES
  6. _FG_BP_2=26
  7. _FG_BP_3=28
  8. _FG_BP_4=30
  9. _LSTLIN =32
  10. _LN_MASK=34
  11. _WRT_MOD=36
  12. _X1     =38
  13. _Y1     =40
  14. _X2     =42
  15. _Y2     =44
  16.  
  17. SAVEA0 MACRO                        ;SAVE LINE-A POINTER
  18.   MOVE.L A0,SVA0
  19.   ENDM
  20.  
  21. GETA0 MACRO                         ;GET LINE-A POINTER
  22.   MOVE.L SVA0,A0
  23.   ENDM
  24.  
  25. AINIT MACRO                         ;INITIALIZE LINE-A GRAPHICS
  26.   DC.W $A000
  27.   ENDM
  28.  
  29. ACOLOR MACRO $\1,$\2,$\3,$\4        ;SET LINE-A PLANE COLORS
  30.   AND #1,\1
  31.   MOVE \1,_FG_BP_1(A0)
  32.   AND #1,\2
  33.   MOVE \2,_FG_BP_2(A0)
  34.   AND #1,\3
  35.   MOVE \3,_FG_BP_3(A0)
  36.   AND #1,\4
  37.   MOVE \4,_FG_BP_4(A0)
  38.   ENDM
  39.  
  40. AWRITEMODE MACRO $\1                ;SET LINE-A WRITE MODE
  41.   MOVE \1,_WRT_MOD(A0)
  42.   ENDM
  43.  
  44. ALINEMASK MACRO $\1                 ;SET LINE-A LINE MASK
  45.   MOVE \1,_LN_MASK(A0)
  46.   ENDM
  47.  
  48. ALINE MACRO $\1,$\2,$\3,$\4         ;DRAW LINE-A LINE
  49.   MOVE \1,_X1(A0)
  50.   MOVE \2,_Y1(A0)
  51.   MOVE \3,_X2(A0)
  52.   MOVE \4,_Y2(A0)
  53.   MOVE #-1,_LSTLIN(A0)
  54.   DC.W $A003
  55.   ENDM
  56.  
  57. START:
  58.   DC.W $A00A                        ;HIDE MOUSE
  59.   GETREZ                            ;SAVE RESOLUTION
  60.   MOVE D0,REZ
  61.   SETSCREEN #0,-1,-1                ;SET LO-RES
  62.   AINIT
  63.   SAVEA0
  64.   ALINEMASK #$FFFF
  65.   AWRITEMODE #1
  66.   MOVE #10000,DLY
  67.  
  68. RESTART:
  69. RNDX:                               ;RANDOM X (0-319)
  70.   RANDOM
  71.   AND #$1FF,D0
  72.   CMP #319,D0
  73.   BHI RNDX
  74.   MOVE D0,X
  75. RNDMVX:                             ;RANDOM MOVE (3~-3, <>0)
  76.   RANDOM
  77.   AND #7,D0
  78.   SUB #3,D0
  79.   CMP #0,D0
  80.   BEQ RNDMVX
  81.   CMP #4,D0
  82.   BEQ RNDMVX
  83.   MOVE D0,MVX
  84. RNDY:                               ;RANDOM Y (0-199)
  85.   RANDOM
  86.   AND #$FF,D0
  87.   CMP #199,D0
  88.   BHI RNDY
  89.   MOVE D0,Y
  90. RNDMVY:                             ;RANDOM MOVE (3~-3, <>0)
  91.   RANDOM
  92.   AND #7,D0
  93.   SUB #3,D0
  94.   CMP #0,D0
  95.   BEQ RNDMVY
  96.   CMP #4,D0
  97.   BEQ RNDMVY
  98.   MOVE D0,MVY
  99. RNDX2:                              ;RANDOM X2 (0-319)
  100.   RANDOM
  101.   AND #$1FF,D0
  102.   CMP #319,D0
  103.   BHI RNDX2
  104.   MOVE D0,X2
  105. RNDMVX2:                            ;RANDOM MOVE (3~-3, <>0)
  106.   RANDOM
  107.   AND #7,D0
  108.   SUB #3,D0
  109.   CMP #0,D0
  110.   BEQ RNDMVX2
  111.   CMP #4,D0
  112.   BEQ RNDMVX2
  113.   MOVE D0,MVX2
  114. RNDY2:                              ;RANDOM Y2 (0-199)
  115.   RANDOM
  116.   AND #$FF,D0
  117.   CMP #199,D0
  118.   BHI RNDY2
  119.   MOVE D0,Y2
  120. RNDMVY2:                            ;RANDOM MOVE (3~-3, <>0)
  121.   RANDOM
  122.   AND #7,D0
  123.   SUB #3,D0
  124.   CMP #0,D0
  125.   BEQ RNDMVY2
  126.   CMP #4,D0
  127.   BEQ RNDMVY2
  128.   MOVE D0,MVY2
  129.  
  130. CLEARSCREEN:
  131.   PRINTLINE CLS
  132.  
  133. RNDLEN:                             ;GET RANDOM LENGTH
  134.   RANDOM
  135.   AND #$3F,D0
  136.   ADD #25,D0
  137.   MOVE D0,LENGTH
  138. RNDCOL:                             ;GET RANDOM COLOR
  139.   RANDOM
  140.   MOVE D0,D7
  141.   RANDOM
  142.   MOVE D0,D6
  143.   RANDOM
  144.   MOVE D0,D5
  145.   RANDOM
  146.  
  147.   GETA0
  148.   ACOLOR D0,D5,D6,D7
  149.  
  150. AGAIN:                              ;MAIN LOOP
  151.   ALINE X,Y,X2,Y2
  152.   RAWCONIO #$FF                     ;CHECK KEYBOARD
  153.   GETA0
  154.   CMP #'',D0
  155.   BEQ DONE                          ;EXIT
  156.   CMP #$0D,D0
  157.   BEQ RESTART
  158.   CMP #' ',D0
  159.   BEQ CLEARSCREEN
  160.  
  161.   CMP #'1',D0
  162.   BNE P2
  163.   MOVE #10000,DLY
  164.   BRA CONTINUE
  165. P2:
  166.   CMP #'2',D0
  167.   BNE P3
  168.   MOVE #8000,DLY
  169.   BRA CONTINUE
  170. P3:
  171.   CMP #'3',D0
  172.   BNE P4
  173.   MOVE #6000,DLY
  174.   BRA CONTINUE
  175. P4:
  176.   CMP #'4',D0
  177.   BNE P5
  178.   MOVE #4000,DLY
  179.   BRA CONTINUE
  180. P5:
  181.   CMP #'5',D0
  182.   BNE P0
  183.   MOVE #2000,DLY
  184.   BRA CONTINUE
  185. P0:
  186.   CMP #'0',D0
  187.   BNE CONTINUE
  188.   MOVE #0,DLY
  189.  
  190. CONTINUE:
  191.   MOVE LENGTH,D0                    ;DECREMENT LENGTH
  192.   SUB #1,D0
  193.   MOVE D0,LENGTH
  194.   BEQ RNDLEN                        ;GET NEW LENGTH, COLOR
  195.  
  196.   MOVE X,D0                         ;MOVE X
  197.   ADD MVX,D0
  198.   CMP #0,D0
  199.   BLT FIXX
  200.   CMP #319,D0
  201.   BLE XOK
  202. FIXX:                               ;FIX X (0 <= X <= 319)
  203.   NEG MVX
  204.   ADD MVX,D0
  205. XOK:
  206.   MOVE D0,X
  207.  
  208.   MOVE Y,D0                         ;MOVE Y
  209.   ADD MVY,D0
  210.   CMP #0,D0
  211.   BLT FIXY
  212.   CMP #199,D0
  213.   BLE YOK
  214. FIXY:                               ;FIX Y (0 <= Y <= 199)
  215.   NEG MVY
  216.   ADD MVY,D0
  217. YOK:
  218.   MOVE D0,Y
  219.  
  220.   MOVE X2,D0                        ;MOVE X2
  221.   ADD MVX2,D0
  222.   CMP #0,D0
  223.   BLT FIXX2
  224.   CMP #319,D0
  225.   BLE X2OK
  226. FIXX2:                              ;FIX X2 (0 <= X2 <= 319)
  227.   NEG MVX2
  228.   ADD MVX2,D0
  229. X2OK:
  230.   MOVE D0,X2
  231.  
  232.   MOVE Y2,D0                        ;MOVE Y2
  233.   ADD MVY2,D0
  234.   CMP #0,D0
  235.   BLT FIXY2
  236.   CMP #199,D0
  237.   BLE Y2OK
  238. FIXY2:                              ;FIX Y2 (0 <= Y2 <= 199)
  239.   NEG MVY2
  240.   ADD MVY2,D0
  241. Y2OK:
  242.   MOVE D0,Y2
  243.  
  244.   MOVE DLY,D0                       ;PAUSE
  245. DELAY: DBRA D0,DELAY
  246.   BRA AGAIN                         ;NEXT LINE!
  247.  
  248. DONE:
  249.   SETSCREEN REZ,-1,-1               ;RESTORE RESOLUTION
  250.   TERM
  251.  
  252.   DATA
  253. CLS DC.B 'E',0,0
  254.  
  255.   BSS
  256. REZ DS.W 1
  257. X DS.W 1
  258. MVX DS.W 1
  259. Y DS.W 1
  260. MVY DS.W 1
  261. X2 DS.W 1
  262. MVX2 DS.W 1
  263. Y2 DS.W 1
  264. MVY2 DS.W 1
  265. SVA0 DS.L 1
  266. LENGTH DS.W 1
  267. DLY DS.W 1
  268.   END
  269.